package main

// import (
// 	"fmt"
// )

// // 全局切片变量
// var slice0 []int = make([]int, 10)

// var slice1 []int = make([]int, 10, 10)

// func main(){
// 	fmt.Printf("make全局slice0: %v\n", slice0)
// 	fmt.Printf("make全局slice1: %v\n", slice1)


// 	// 读写操作实际目标是底层数组，只需注意索引号的差别。
// 	data := [...]int{0, 1, 2, 3, 4}
// 	s := data[2:4]
// 	s[0] += 100
// 	s[1] += 200
// 	fmt.Println(s)
// 	fmt.Println(data)
// // 1、使用 make 动态创建slice，避免了数组必须用常量做长度的麻烦。还可用指针直接访问底层数组，退化成普通数组操作。

// // 2、可直接修改 struct array/slice 成员。


// // 3、用append内置函数操作切片（切片追加）
// // append ：向 slice 尾部添加数据，返回新的 slice 对象。

// //  超出原 slice.cap 限制，就会重新分配底层数组，即便原数组并未填满。
// //  切片拷贝

// // copy ：函数 copy 在两个 slice 间复制数据，复制长度以 len 小的为准。两个 slice 可指向同一底层数组，允许元素区间重叠。
// // 
// }